from zhipuai import ZhipuAI
import json
import requests
# 定义问题列表
question_contents = []
client = ZhipuAI(api_key="e01b3f7ea25754c994ab325c5d096be6.U2t6lVQoH1DSl0n4")

# # 获取json文件内容
file_path = "test.json"
# 先往question_contents里面填问题内容
with open(file_path, 'r', encoding='utf-8') as file:
    data = json.load(file)

def writefile(answer,question_de):
    # 假设您的 JSON 文件名为 data.json
    filename = 'test.json'

    # 读取 JSON 文件
    with open(filename, 'r', encoding='utf-8') as file:
        data = json.load(file)

    # 更新答案
    updated_any = False
    
    updated = False
    for item in data:
        if item['question'] == question_de:
            # 找到匹配的问题，更新答案
            item['answer'] = answer
            updated = True
            updated_any = True
            break  # 匹配成功，跳出内层循环
    if not updated:
        print(f"没有找到与 '{question_de}' 匹配的问题。")

    # 如果有任何更新，将更新后的数据写回 JSON 文件
    if updated_any:
        with open(filename, 'w', encoding='utf-8') as file:
            json.dump(data, file, ensure_ascii=False, indent=4)

    print("答案已更新到 JSON 文件。" if updated_any else "没有问题匹配，JSON 文件未更新。")

# 提取所有的question值
# question_contents = [item['question'] for item in data]
for item in data:
    question_contents = item['question']

    if "法人" in question_contents or "法定代表人" in question_contents:
        print(f"问题内容包含法人（法定代表人）字段，开始处理：{question_contents}")
        messages = [
                {
                    "role": "user",
                    "content": f"前提：不要回复我要求之外的任何文字。请分析以下问题{question_contents}，并告诉我这个问题里面的公司名称，你只需要返回给我公司的名字就可以了，其余内容不要回复给我,不要回复多余的东西！比如：请查询景津装备股份有限公司所属的行业类别，并告知在该行业分类下共有多少家公司？你就回复：景津装备股份有限公司。"
                }
            ]
        response = client.chat.completions.create(
            model="glm-4",  # 填写需要调用的模型名称
            messages=messages,
            tool_choice="auto",
        )
        reply = response.choices[0].message.content
        print(f"模型的回答为：{reply}")
        # 如果公司名称不为空，那就根据公司名称获取信息，然后把信息和问题一起扔给模型，并且要求模型不要联网查询，通过我给的信息总结。
        # -------------------------------------------------------------------
# -------------------------------------------------------------------------------------------------
        domain = "comm.chatglm.cn"
        url = f"https://{domain}/law_api/get_company_info"

        # 获取公司全部信息

        headers = {
            'Content-Type': 'application/json',
            'Authorization': 'Bearer DE32EB46D23350E0B75B3702C8D5DC036F8CE32DC73C919D'
        }

        data = {
            "company_name": f"{reply}"
        }

        rsp = requests.post(url, json=data, headers=headers)
        print(f"根据公司名称获取到的全部信息{rsp.json()}")
# ---------------------------------------------------------------------------------------------------
        if(rsp.json()!=[]):
            messages = [
                {
                    "role": "user",
                    "content": f"{rsp.json()}{question_contents}不要联网查询，从我给你的信息里面总结"
                }
            ]
            fin_response = client.chat.completions.create(
                model="glm-4",  # 填写需要调用的模型名称
                messages=messages,
                tool_choice="auto",
            )
            fin_reply = fin_response.choices[0].message.content
            print(f"最终结果为：{fin_reply}")
            writefile(fin_reply,question_contents)
        else:
            messages = [
                {
                    "role": "user",
                    "content": f"{question_contents}请用一段话，不要换行。"
                }
            ]
            fin_response = client.chat.completions.create(
                model="glm-4",  # 填写需要调用的模型名称
                messages=messages,
                tool_choice="auto",
            )
            fin_reply = fin_response.choices[0].message.content
            print(f"最终结果为：{fin_reply}")
            writefile(fin_reply,question_contents)
    else:
        print("问题内容没有包含相关字段，开始直接询问模型！")
        messages = [
                {
                    "role": "user",
                    "content": f"{question_contents}请用一段话，不要换行。"
                }
            ]
        response = client.chat.completions.create(
            model="glm-4",  # 填写需要调用的模型名称
            messages=messages,
            tool_choice="auto",
        )
        reply = response.choices[0].message.content
        print(f"模型的回答为：{reply}")
        print("-------------------")
        writefile(reply,question_contents)